Imports System.Data
Imports System.Data.SqlClient

Public Class DaoInscripcionEvento
    Private PropCadenaConexion As String
    Private PropError As String

	#Region "Constructor y Finalizador"
    ''' <summary>
    ''' Destruye el Objeto
    ''' </summary>
    ''' <remarks></remarks>
    Public Sub Dispose()
        Try
            GC.SuppressFinalize(Me)
        Catch ex As Exception
        End Try
    End Sub

    ''' <summary>
    ''' Constructor de la clase NegPersonas
    ''' </summary>
    ''' <param name="CadenaConexion">Cadena de Conexi?n hacia la base de datos</param>
    ''' <remarks></remarks>
    Public Sub New(ByVal CadenaConexion As String)
        Me.PropCadenaConexion = CadenaConexion
    End Sub
    #End Region
	
	#Region "M?todos Acceso a las Propiedades"
		Public ReadOnly Property ErrorMensaje() As String
			Get
				Return Me.PropError
			End Get
		End Property
	#End Region
 
	Public Function DAOListarInscripcionEvento(ByVal objInscripcionEvento As dllEntidades.clsInscripcionEvento) As Collection
        Dim ListaTA As New Collection
        Dim objConn As New DllAccesoDatos.clsAccesoDatos(Me.PropCadenaConexion)
        Dim ObjItem As dllEntidades.clsInscripcionEvento
        Dim miDS As New DataSet
        Dim Param(3) As SqlParameter
		Try
            Param(0) = New SqlParameter("@FK_Evento", objInscripcionEvento.CodigoEvento.ToString.Trim)
            Param(1) = New SqlParameter("@FK_RutFuncionario", objInscripcionEvento.RutFuncionario.ToString.Trim)
            Param(2) = New SqlParameter("@FK_TipoAsistente", objInscripcionEvento.TipoAsistente.ToString.Trim)
            Param(3) = New SqlParameter("@NN_Asistio", objInscripcionEvento.Asistio.ToString.Trim)
		miDS = objConn.ExecuteDataSet("SEL_InscripcionEvento", Param)
		For X As Integer = 0 To miDS.Tables(0).Rows.Count - 1
                ObjItem = New dllEntidades.clsInscripcionEvento
                With miDS.Tables(0).Rows(X)
                    ObjItem.InscripcionEvento = .Item("PK_InscripcionEvento")
                    ObjItem.CodigoEvento = .Item("FK_Evento")
                    ObjItem.Evento = .Item("Evento")
                    ObjItem.RutFuncionario = .Item("FK_RutFuncionario")
                    ObjItem.TipoAsistente = .Item("FK_TipoAsistente")
                    ObjItem.Asistio = .Item("NN_Asistio")
                End With
                ListaTA.Add(ObjItem)
                ObjItem = Nothing
            Next
        Catch ex As Exception
            Me.PropError = ex.Message.ToString
        Finally
            objConn = Nothing
            ObjItem = Nothing
            miDS.Dispose()
            miDS = Nothing
        End Try

        Return ListaTA
    End Function

    Public Function DAOGrabarInscripcionEvento(ByVal objItem As dllEntidades.clsInscripcionEvento) As Boolean
        Dim bolResul As Boolean = False
        Dim objConn As New DllAccesoDatos.clsAccesoDatos(Me.PropCadenaConexion)
        Dim miDS As New DataSet
        Dim Param(3) As SqlParameter
        Try
            Param(0) = New SqlParameter("@FK_Evento", objItem.CodigoEvento.ToString.Trim)
            Param(1) = New SqlParameter("@FK_RutFuncionario", objItem.RutFuncionario.ToString.Trim)
            Param(2) = New SqlParameter("@FK_TipoAsistente", objItem.TipoAsistente.ToString.Trim)
            Param(3) = New SqlParameter("@NN_Asistio", "NO")
            miDS = objConn.ExecuteDataSet("INS_InscripcionEvento", Param)
            If miDS.Tables(0).Rows(0).Item("Resultado") > 0 Then
                bolResul = True
            End If
        Catch ex As Exception
            Me.PropError = ex.Message.ToString
        Finally
            objConn = Nothing
            miDS.Dispose()
            miDS = Nothing
        End Try

        Return bolResul
    End Function

	Public Function DAOUpdatearInscripcionEvento(ByVal objInscripcionEvento As dllEntidades.clsInscripcionEvento) As Boolean
        Dim bolResul As Boolean = False
        Dim objConn As New DllAccesoDatos.clsAccesoDatos(Me.PropCadenaConexion)
        Dim miDS As New DataSet
        Dim Param(4) As SqlParameter
        Try
			
            Param(0) = New SqlParameter("@PK_InscripcionEvento", objInscripcionEvento.InscripcionEvento.ToString.Trim)
            Param(1) = New SqlParameter("@FK_Evento", objInscripcionEvento.CodigoEvento.ToString.Trim)
            Param(2) = New SqlParameter("@FK_RutFuncionario", objInscripcionEvento.RutFuncionario.ToString.Trim)
            Param(3) = New SqlParameter("@FK_TipoAsistente", objInscripcionEvento.TipoAsistente.ToString.Trim)
            Param(4) = New SqlParameter("@NN_Asistio", objInscripcionEvento.Asistio.ToString.Trim)
            miDS = objConn.ExecuteDataSet("UPD_InscripcionEvento", Param)
            If miDS.Tables(0).Rows(0).Item("Resultado") > 0 Then
                bolResul = True
            End If
        Catch ex As Exception
            Me.PropError = ex.Message.ToString
        Finally
            objConn = Nothing
            miDS.Dispose()
            miDS = Nothing
        End Try

        Return bolResul
    End Function

End Class

